import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/*
    BufferedReader:
        带有缓冲区的字符输入流
        使用这个流的时候不需要自己定义char数组，或者byte数组。自带缓冲

 */
public class BufferedReaderTest01 {
    public static void main(String[] args) {
        FileReader fr = null;
        BufferedReader bd = null;
        try {
            //**********************************************************************
            fr = new FileReader("chapter21\\src\\FileCopyTest01.java");
            //当一个构造方法中需要一个流的时候，这个被传进来的流叫做：节点流
            //外部负责包装的这个流，叫做：包装流，或者处理流
            //本例FileReader就是节点流，BufferedReader就是包装流
            bd = new BufferedReader(fr);  // 这种方法只能传一个字符流，不能传字节流

            String s = null;
            while ((s = bd.readLine()) != null){  //读一行，bd.readLine()这个方法没有自带换行符
                System.out.println(s);

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bd != null) {
                try {
                    //关闭流
                    //对于包装流来说，只要关闭最外层流就行，里面的节点流会自动关闭
                    bd.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
